package com.xiaoshuidi.cloud.module.contract.controller.admin.bill.vo.rentOrder;

import com.baomidou.mybatisplus.annotation.TableId;
import lombok.*;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 账单 DO
 *
 * @author 合房租赁
 */
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class RentOrderResp  {

    /**
     * 账单id
     */
    @TableId
    private Long id;

    /**
     * 序号
     */
    private Long num=1L;

    /**
     * 账单编号
     */
    private String orderNo;


    /**
     * 业务id 如 合同id 、预定id
     */
    private Long businessId;

    /**
     * 公寓id
     */
    private Long apartmentId;

    /**
     * 公寓名称
     */
    private String apartmentName;

    /**
     * 房间id
     */
    private Long roomId;

    /**
     * 房间名称
     */
    private String roomName;
    /**
     * 原账单id
     */
    private String oldOrderId;

    /**
     * 此订单开始时间
     */
    private LocalDate startTime;

    /**
     * 此订单结束时间
     */
    private LocalDate endTime;

    /**
     * 已收账单总额
     */
    private BigDecimal paidRentUtilities = BigDecimal.ZERO;
    /**
     * 账单总金额
     */
    private BigDecimal totalAmount;

    /**
     * 租金金额
     */
    private BigDecimal rentAmount;

    /**
     * 押金金额
     */
    private BigDecimal depositAmount = BigDecimal.ZERO;

    /**
    * 杂费金额
    * */
    private BigDecimal extrasAmount = BigDecimal.ZERO;

    /**
     * 租金押金金额
     */
    private BigDecimal rentDeposit = BigDecimal.ZERO;

    /**
     * 优惠金额
     */
    private BigDecimal discountAmount;
    /**
    * 待收金额
    * */
    private BigDecimal receivableAmount;

    /**
     * 此订单支付时间
     */
    private LocalDate oughtPayTime;

    /**
     * 此订单最晚支付时间
     */
    private LocalDate deadlinePayTime;

    /**
     * 此订单实际支付时间
     */
    private LocalDateTime actualPayTime;
    /**
     * 最后一次催款时间
     */
    private LocalDateTime lastRemindTimes;
    /**
     * 账单类型 default 合同账单| custom 杂费账单| free  免租期账单| meter  抄表账单| carry 结转账单 | owner 业主账单
     */
    private String orderType;
    /**
     * 账单归属人
     */
    private Integer roommateId;
    /**
     * customer_name
     * */
    private String customerName;

    /**
     * 手机号
     */
    private String customerphone;

    /**
     * 收款备注
     */
    private String receivePaymentComments;

    /**
     * 备注
     */
    private String remark;

    /**
     * 账单状态
     */
    private String orderStatus;
    /**
     * 账单状态
     */
    private String orderStatusName;

    /**
     * 账单状态
     */
    private String billTypeName;

    /**
     * 支付状态(unpaid 待支付 |payment 已支付|part  部分支付),
     */
    private String payStatus;

    /**
     * 审批状态(notReview  无需审核|inReview 审核中|effective 已生效|(reject 已驳回)
     */
    private String approvedStatus;
    /*
    * 企业名称
    * */
    private String companyName;

    /**
     * 是否在退租审批中 1 是 | 0 不是
     */
    private Integer isPendingRentingOut;
    /**
     * 审批流程id
     */
    private String processInstance;

    /**
     * 实收金额
     */
    private BigDecimal paidAmount;

    /**
     * 付款人
     */
    private String payer;


    /**
     * 来源合同ID  续租 | 换房
     */
    private Long fromId;

}
